local selInfo = Def.ActorFrame{
};
local t = Def.ActorFrame{
};

	if not GAMESTATE:IsCourseMode() then
		local song = GAMESTATE:GetCurrentSong();
		local course = GAMESTATE:GetCurrentCourse();
		local path;
		local BannerPath = song:GetBannerPath();
		local JacketPath = song:GetJacketPath();
		if song:GetDisplaySubTitle() ~= "" then
			-- songtitle_plus_subtile
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongMainTitle1";
				Text=GAMESTATE:GetCurrentSong():GetDisplayMainTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetSongColor(song) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_RIGHT-20);
					self:y(SCREEN_CENTER_Y-50);
					self:horizalign(right);
					self:zoomx(1);
					self:zoomy(0.9);
					self:shadowlength(0);
				end;
				OnCommand=cmd(diffusealpha,0;addx,SCREEN_WIDTH*0.5;sleep,0.2;accelerate,0.4;diffusealpha,1;addx,-SCREEN_WIDTH*0.5;sleep,1.4;accelerate,0.1;addy,-150;diffusealpha,0;);
			};
			-- songtitle_plus_subtile
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongMainTitle2";
				Text=GAMESTATE:GetCurrentSong():GetDisplayMainTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetSongColor(song) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_CENTER_X-192);
					self:horizalign(left);
					self:zoomx(1);
					self:zoomy(0.9);
					self:shadowlength(0);
				end;
				OnCommand=function(self)
					if JacketPath then
						self:y(SCREEN_BOTTOM-80);
					else
						self:y(SCREEN_CENTER_Y+20);
					end;
					self:addx(-200);
					self:diffusealpha(0);
					self:sleep(2);
					self:accelerate(0.1);
					self:addx(200);
					self:diffusealpha(1);
					self:sleep(0.6);
					self:accelerate(0.3);
					self:addx(12);
					self:diffusealpha(0);	
				end;
			};
			-- songtitle_plus_subtile
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongSubTitle1";
				Text=GAMESTATE:GetCurrentSong():GetDisplaySubTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetSongColor(song) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_RIGHT-20);
					self:y(SCREEN_CENTER_Y-34);
					self:horizalign(right);
					self:zoomx(0.575);
					self:zoomy(0.565);
					self:shadowlength(0);
				end;
				OnCommand=cmd(diffusealpha,0;addx,SCREEN_WIDTH*0.5;sleep,0.2;accelerate,0.4;diffusealpha,1;addx,-SCREEN_WIDTH*0.5;sleep,1.4;accelerate,0.1;addy,-300/2;diffusealpha,0;)
			};
			-- songtitle_plus_subtile
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongSubTitle2";
				Text=GAMESTATE:GetCurrentSong():GetDisplaySubTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetSongColor(song) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_CENTER_X-192);
					self:horizalign(left);
					self:zoomx(0.575);
					self:zoomy(0.565);
					self:shadowlength(0);
				end;
				OnCommand=function(self)
					if JacketPath then
						self:y(SCREEN_BOTTOM-64);
					else
						self:y(SCREEN_CENTER_Y+36);

					end;
					self:addx(-200);
					self:diffusealpha(0);
					self:sleep(2);
					self:accelerate(0.1);
					self:addx(400/2);
					self:diffusealpha(1);
					self:sleep(0.6);
					self:accelerate(0.1);
					self:addx(18);
					self:diffusealpha(0);
				end;
			};
		else
			-- full title
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongTitle1";
				Text=GAMESTATE:GetCurrentSong():GetDisplayFullTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetSongColor(song) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_RIGHT-20);
					self:y(SCREEN_CENTER_Y-40);
					self:horizalign(right);
					self:zoom(1);
					self:shadowlength(0);
				end;
				OnCommand=cmd(shadowlength,0;addx,SCREEN_WIDTH*0.5;sleep,0.2;accelerate,0.4;diffusealpha,1;addx,-SCREEN_WIDTH*0.5;sleep,1.4;accelerate,0.1;addy,-300/2;diffusealpha,0;);
			};
			-- full title
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongTitle2";
				Text=GAMESTATE:GetCurrentSong():GetDisplayFullTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetSongColor(song) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_CENTER_X-192);
					self:horizalign(left);
					self:zoom(1);
					self:shadowlength(0);
				end;
				OnCommand=function(self)
					if JacketPath then
						self:y(SCREEN_BOTTOM-70);
					else
						self:y(SCREEN_CENTER_Y+30);
					end;
					self:addx(-200);
					self:diffusealpha(0);
					self:sleep(2);
					self:accelerate(0.1);
					self:addx(200);
					self:diffusealpha(1);
					self:sleep(0.6);
					self:accelerate(0.1);
					self:addx(12);
					self:diffusealpha(0);
				end;
			};
		end;

		-- artist
		selInfo[#selInfo+1] = LoadFont("_shared2")..{
			Name="Artist1";
			Text=GAMESTATE:GetCurrentSong():GetDisplayArtist();
			InitCommand=function(self)
				self:diffuse( SONGMAN:GetSongColor(song) );
				self:horizalign(right);
				self:shadowlength(0);
				self:maxwidth(SCREEN_WIDTH*0.7);
				self:x(SCREEN_RIGHT-20);
				self:y(SCREEN_CENTER_Y-20);
				self:zoom(0.65);
				self:shadowlength(0);
			end;
			OnCommand=cmd(diffusealpha,0;addx,SCREEN_WIDTH*0.5;sleep,0.2;accelerate,0.4;diffusealpha,1;addx,-SCREEN_WIDTH*0.5;sleep,1.4;accelerate,0.1;addy,-300/2;diffusealpha,0);
		};
		-- artist
		selInfo[#selInfo+1] = LoadFont("_shared2")..{
			Name="Artist2";
			Text=GAMESTATE:GetCurrentSong():GetDisplayArtist();
			InitCommand=function(self)
				self:diffuse( SONGMAN:GetSongColor(song) );
				self:horizalign(left);
				self:shadowlength(0);
				self:maxwidth(SCREEN_WIDTH*0.7);
				self:x(SCREEN_CENTER_X-192);
				self:horizalign(left);
			end;
			OnCommand=function(self)
				if JacketPath then
					self:y(SCREEN_BOTTOM-50);
				else
					self:y(SCREEN_CENTER_Y+50);
				end;
				self:addx(-200);
				self:diffusealpha(0);
				self:zoom(0.65);
				self:sleep(2);
				self:accelerate(0.1);
				self:addx(200);
				self:diffusealpha(1);
				self:sleep(0.6);
				self:accelerate(0.2);
				self:addx(16);
				self:diffusealpha(0);
			end;
		};
	else
		-- course info
		if GAMESTATE:IsCourseMode() then
			local course = GAMESTATE:GetCurrentCourse();
			-- songtitle_plus_subtile
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongMainTitle1";
				Text=GAMESTATE:GetCurrentCourse():GetDisplayFullTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetCourseColor(course) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_RIGHT-20);
					self:y(SCREEN_CENTER_Y-50);
					self:horizalign(right);
					self:zoomx(1);
					self:zoomy(0.9);
					self:shadowlength(0);
				end;
				OnCommand=cmd(diffusealpha,0;addx,SCREEN_WIDTH*0.5;sleep,0.2;accelerate,0.4;diffusealpha,1;addx,-SCREEN_WIDTH*0.5;sleep,1.4;accelerate,0.1;addy,-150;diffusealpha,0;);
			};
			-- songtitle_plus_subtile
			selInfo[#selInfo+1] = LoadFont("_shared2")..{
				Name="SongMainTitle2";
				Text=GAMESTATE:GetCurrentCourse():GetDisplayFullTitle();
				InitCommand=function(self)
					self:diffuse( SONGMAN:GetCourseColor(course) );
					self:maxwidth(SCREEN_WIDTH*0.7);
					self:x(SCREEN_CENTER_X-192);
					self:y(SCREEN_CENTER_Y+30);
					self:horizalign(left);
					self:zoomx(1);
					self:zoomy(0.9);
					self:shadowlength(0);
				end;
				OnCommand=cmd(addx,-200;diffusealpha,0;sleep,2;accelerate,0.1;addx,200;diffusealpha,1;sleep,0.6;accelerate,0.3;addx,12;diffusealpha,0;);
			};
		end;
	end;


t[#t+1] = selInfo;

return t;